"""
核反应堆子通道分析程序的常量定义
"""

# 几何参数（单位：米）
ROD_DIAMETER = 14.5e-3  # 燃料棒直径
ROD_PITCH = 18.7e-3    # 燃料棒间距
BUNDLE_SIZE = 3        # 3×3棒束
N_CHANNELS = 16        # 总子通道数
CHANNEL_LENGTH = 4.0   # 通道总长度 (m)

# 入口工况参数
INLET_PRESSURE = 15.5e6    # 入口压力 (Pa)
INLET_TEMP = 583.15        # 入口温度 (K)
INLET_MASS_FLUX = 3500.0   # 入口质量流量 (kg/m²·s)
OUTLET_PRESSURE = 15.3e6   # 出口压力 (Pa)
AVERAGE_HEAT_FLUX = 1.2e6  # 平均热流密度 (W/m²)

# 时间步长相关
DEFAULT_TIME_STEP = 1e-4  # 默认时间步长 (s)
SAVE_INTERVAL = 100      # 保存间隔

# 物理参数
DEFAULT_SATURATION_TEMP = 373.15  # 默认饱和温度 (K)
DEFAULT_LATENT_HEAT = 2.257e6    # 默认汽化潜热 (J/kg)
GRAVITY = 9.81                   # 重力加速度 (m/s²)

# 数值计算参数
MAX_ITERATIONS = 1000           # 最大迭代次数
CONVERGENCE_CRITERIA = 1e-6     # 收敛判据
CFL_NUMBER = 0.5               # CFL数

# 换热系数
TURBULENT_MIXING_COEFF = 0.01  # 湍流混合系数
INTERFACE_DRAG_COEFF = 0.44    # 界面阻力系数
SUBCOOLED_BOILING_COEFF = 0.5  # 过冷沸腾系数

# 子通道类型定义
CHANNEL_TYPES = {
    1: 'corner',   # 左上角
    2: 'edge',     # 上边
    3: 'edge',     # 上边
    4: 'corner',   # 右上角
    5: 'edge',     # 左边
    6: 'center',   # 中心
    7: 'center',   # 中心
    8: 'edge',     # 右边
    9: 'edge',     # 左边
    10: 'center',  # 中心
    11: 'center',  # 中心
    12: 'edge',    # 右边
    13: 'corner',  # 左下角
    14: 'edge',    # 下边
    15: 'edge',    # 下边
    16: 'corner'   # 右下角
}

# 子通道几何参数
CHANNEL_GEOMETRY = {
    'corner': {
        'flow_area': 5.050e-5,        # m²
        'wetted_perimeter': 2.835e-2,  # m
        'heated_perimeter': 1.14e-2    # m
    },
    'edge': {
        'flow_area': 1.177e-4,        # m²
        'wetted_perimeter': 4.149e-2,  # m
        'heated_perimeter': 2.28e-2    # m
    },
    'center': {
        'flow_area': 1.868e-4,        # m²
        'wetted_perimeter': 4.548e-2,  # m
        'heated_perimeter': 4.56e-2    # m
    }
}

# 子通道连接关系
CHANNEL_CONNECTIONS = {
    1: [2, 5],           # 1号通道连接2,5
    2: [1, 3, 6],        # 2号通道连接1,3,6
    3: [2, 4, 7],        # 3号通道连接2,4,7
    4: [3, 8],           # 4号通道连接3,8
    5: [1, 6, 9],        # 5号通道连接1,6,9
    6: [2, 5, 7, 10],    # 6号通道连接2,5,7,10
    7: [3, 6, 8, 11],    # 7号通道连接3,6,8,11
    8: [4, 7, 12],       # 8号通道连接4,7,12
    9: [5, 10, 13],      # 9号通道连接5,10,13
    10: [6, 9, 11, 14],  # 10号通道连接6,9,11,14
    11: [7, 10, 12, 15], # 11号通道连接7,10,12,15
    12: [8, 11, 16],     # 12号通道连接8,11,16
    13: [9, 14],         # 13号通道连接9,14
    14: [13, 15, 10],    # 14号通道连接13,15,10
    15: [14, 16, 11],    # 15号通道连接14,16,11
    16: [15, 12]         # 16号通道连接15,12
}
